package Cliente.interface_grafico;


import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.ObjectOutputStream;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;

import mensagem.MListaJogadores;


public class JogadoresEncontrados extends JFrame{

	private ObjectOutputStream output;

	private JTable tabela;
	private JButton b_ok;
	private JFrame janela;
	private JScrollPane scrollPane;

	public JogadoresEncontrados(String title, MListaJogadores mensagem, ObjectOutputStream out) {
		super(title);
		assert (title != null && mensagem != null && out != null);
		this.output = out;

		setSize(500, 300);
		setLocation(400, 200);
		setResizable(true);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		setLayout(new GridBagLayout());

		String[] columnNames = {"Id", "Nick", "Nome", "Sexo", "Nacionalidade", "Pontos", "Perfil"};

		tabela = new JTable(new JogadoresTableModel(mensagem.getJogadores(), columnNames));
		tabela.getColumn("Perfil").setCellRenderer(new BotaoPerfilRenderer());	//a aparencia da ultima coluna deve ser a de um botao
		tabela.getColumn("Perfil").setCellEditor(new BotaoPerfilEditor(new JCheckBox(), output));	//Quando se carrega no botao na ultima coluna isso corresponde a uma edicao da mesma. Especificacao de um botao como editor.
		tabela.setAutoCreateRowSorter(true);	//para ser possivel ordenar a tabela pelas varias colunas

		scrollPane = new JScrollPane(tabela);
		tabela.setFillsViewportHeight(true);

		b_ok = new JButton("Ok");

		b_ok.addActionListener(new ActionListener(){
			@Override
			public void actionPerformed(ActionEvent arg0) {
				janela.setVisible(false);
				janela.dispose();
			}
		});

		//Layout com o GridBagLayout
		scrollPane.setPreferredSize(getMaximumSize());
		GridBagConstraints c = new GridBagConstraints();
		c.fill = GridBagConstraints.BOTH;
		c.gridx = 0;
		c.gridy = 0;
		c.ipady = 100;
		c.weightx = 1.0;
		c.weighty = 1.0;
		Container cp = getContentPane();
		cp.add(scrollPane, c);
		c.fill = GridBagConstraints.NONE;
		c.ipady = 0;
		c.gridx = 0;
		c.gridy = 1;
		c.weightx = 0.0;
		c.weighty = 0.0;
		cp.add(b_ok, c);

		janela = this;
		setVisible(true);
	}

}
